يُعد Flatpak أحد أهم الأنظمة الحديثة لإدارة وتثبيت التطبيقات على توزيعات لينكس، حيث يوفر بيئة تشغيل موحدة ومستقلة، تسمح للمستخدمين بتثبيت التطبيقات وتشغيلها دون الاعتماد الكامل على مكتبات النظام الأساسية. يعتمد Flatpak على مفهوم الحاويات لتوفير العزل بين التطبيقات والنظام المضيف، مما يعزز الأمان ويُبسّط إدارة البرمجيات بشكل كبير.
ما هو Flatpak؟
Flatpak هو نظام لتوزيع التطبيقات في بيئة لينكس تم تطويره بدعم من مؤسسة فري ديستوب (freedesktop.org). يهدف إلى حل مشكلات التوافق بين التطبيقات والتوزيعات المختلفة من خلال إنشاء حزم برامج تعمل في بيئة معزولة عن النظام الرئيسي، مع إمكانية تشغيلها على أي توزيعة تدعم Flatpak.
يقوم Flatpak بتجميع التطبيق مع جميع تبعياته (dependencies) داخل حزمة واحدة، تُعرف باسم bundle. وبدلاً من الاعتماد على مكتبات النظام المثبتة مسبقًا، يتم تضمين الإصدارات الخاصة بالتطبيق داخل الحزمة نفسها أو تحميلها بشكل منفصل من مستودعات Flatpak الرسمية مثل Flathub.
المزايا الرئيسية لنظام Flatpak
-
توافق عبر التوزيعات: يمكن تشغيل نفس حزمة Flatpak على أي توزيعة لينكس، سواء كانت Ubuntu أو Fedora أو Arch أو غيرها، دون الحاجة إلى تعديل أو تخصيص.
-
عزل أمني متقدم: تعتمد تطبيقات Flatpak على تقنية sandboxing، مما يمنع التطبيق من الوصول إلى ملفات النظام أو المستخدم الحساسة بدون تصريح.
-
تثبيت نسخ متعددة: يمكن تثبيت إصدارات متعددة من نفس التطبيق دون تعارض.
-
سهولة التحديث: يدعم Flatpak تحديثات دلتا، ما يعني أنه يتم تحميل التحديثات بشكل أسرع وبحجم أقل.
-
بيئة تشغيل موحدة: يستخدم Flatpak ما يُعرف بـ “runtime”، وهو بيئة تشغيل ثابتة تضمن عمل التطبيق بشكل موثوق بغض النظر عن التوزيعة.
طريقة تثبيت Flatpak
يأتي Flatpak مثبتًا مسبقًا في بعض التوزيعات مثل Fedora، لكن في توزيعات أخرى مثل Ubuntu أو Linux Mint، يحتاج المستخدم إلى تثبيته يدويًا.
على Ubuntu و Debian:
bashsudo apt update sudo apt install flatpak
على Arch Linux:
bashsudo pacman -S flatpak
على Fedora:
غالبًا ما يكون مثبتًا مسبقًا. إذا لم يكن كذلك:
bashsudo dnf install flatpak
إضافة مستودع Flathub
Flathub هو المستودع الرسمي لتطبيقات Flatpak، ويحتوي على مئات التطبيقات المعروفة. لإضافته:
bashflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
تثبيت التطبيقات باستخدام Flatpak
بعد تثبيت Flatpak وإضافة Flathub، يمكن تثبيت أي تطبيق متاح في المستودع باستخدام الأمر التالي:
bashflatpak install flathub org.mozilla.firefox
في هذا المثال، يتم تثبيت متصفح Firefox من Flathub.
تشغيل التطبيقات المثبتة
لتشغيل تطبيق مثبت عبر Flatpak:
bashflatpak run org.mozilla.firefox
تحديث التطبيقات
يمكنك تحديث كل التطبيقات المثبتة عبر Flatpak باستخدام:
bashflatpak update
حذف التطبيقات
لحذف تطبيق:
bashflatpak uninstall org.mozilla.firefox
إدارة الأذونات
بما أن تطبيقات Flatpak تعمل في بيئة معزولة، فإنها لا تملك صلاحية الوصول إلى ملفات النظام أو المستخدم بشكل مباشر. لكن يمكن تعديل الأذونات باستخدام أدوات مثل:
Flatseal (واجهة رسومية)
تثبيت Flatseal من Flathub:
bashflatpak install flathub com.github.tchx84.Flatseal
يمكن من خلاله تعديل صلاحيات كل تطبيق على حدة بطريقة رسومية سهلة.
باستخدام سطر الأوامر
لمعرفة أذونات تطبيق:
bashflatpak info --show-permissions org.mozilla.firefox
ولتعديلها (مثال للسماح بالوصول لمجلد معين):
bashflatpak override --user --filesystem=/home/username/Documents org.mozilla.firefox
هيكلية Flatpak: فهم المكونات
| المكون | الوصف |
|---|---|
| Runtime | بيئة تشغيل أساسية تتشاركها التطبيقات المختلفة |
| Application | الحزمة الأساسية للتطبيق التي تشمل البرنامج وتبعياته |
| Portal API | واجهة تُستخدم لتوفير صلاحيات مؤقتة وآمنة للتطبيقات المعزولة |
| Remote (مثلاً Flathub) | المستودع الذي يتم منه تنزيل التطبيقات وبيئات التشغيل |
مقارنة Flatpak مع أنظمة أخرى
| الخاصية | Flatpak | Snap | AppImage |
|---|---|---|---|
| العزل الأمني (sandboxing) | نعم | نعم | لا |
| التوافق بين التوزيعات | عالي جدًا | عالي | عالي |
| الأداء | جيد | أبطأ قليلاً | أفضل (لعدم وجود عزل) |
| دعم الواجهة الرسومية | نعم (Flatseal) | نعم | لا |
| حجم الحزمة | أكبر عادةً | متوسط | كبير غالبًا |
الحالات المثالية لاستخدام Flatpak
-
عند استخدام توزيعات لا تملك مستودعات غنية.
-
عند الحاجة إلى تشغيل أحدث إصدار من تطبيق دون الانتظار لتحديثات التوزيعة.
-
عند الرغبة في تشغيل التطبيقات في بيئة آمنة ومعزولة.
-
عند تطوير التطبيقات واختبارها على توزيعات مختلفة بسهولة.
العيوب المحتملة لنظام Flatpak
رغم مزاياه الكبيرة، إلا أن هناك بعض السلبيات التي يجب مراعاتها:
-
حجم أكبر للتطبيقات: بسبب تضمين التبعيات.
-
استهلاك موارد إضافية: خصوصًا في الأجهزة ذات العتاد الضعيف.
-
التكامل غير الكامل: بعض التطبيقات لا تتكامل بسلاسة مع بيئة سطح المكتب في بعض التوزيعات.
-
تحديثات runtime مطلوبة: تحتاج بيئة التشغيل إلى التحديث بشكل دوري أيضًا.
كيف يساهم Flatpak في توحيد نظام لينكس؟
أحد أكبر التحديات التي واجهها المطورون في نظام لينكس هو تعدد التوزيعات، واختلاف المكتبات والمكونات بينها. وهذا ما جعل تطوير وتوزيع التطبيقات مهمة معقدة. Flatpak جاء ليحل هذا المشكل من خلال بيئة تشغيل موحدة يمكن للمطورين الاعتماد عليها. وهكذا، يمكن توزيع تطبيق واحد ليعمل على عشرات التوزيعات دون تعديل.
دعم المطورين لـ Flatpak
يزداد اعتماد المطورين يومًا بعد يوم على Flatpak، خصوصًا مع وجود أدوات تطوير متكاملة، وسهولة اختبار التطبيقات في بيئات متعددة. كما أن Flathub بدأ يستقطب مشاريع مفتوحة المصدر كبرى مثل:
-
GIMP
-
LibreOffice
-
Krita
-
VLC
-
Steam
وهذا مؤشر قوي على تبني Flatpak كخيار أساسي للتوزيع في المستقبل.
دعم Flatpak في بيئات سطح المكتب
أغلب بيئات سطح المكتب الحديثة أصبحت تدعم Flatpak بشكل مدمج أو عبر إضافات، من بينها:
-
GNOME Software
-
KDE Discover
-
Elementary AppCenter
هذا يسهل على المستخدمين تثبيت وإدارة تطبيقات Flatpak دون الحاجة إلى سطر الأوامر، مما يفتح الباب أمام جمهور أوسع من المستخدمين.
التحديثات التلقائية وإدارتها
يمكن إعداد النظام لتحديث تطبيقات Flatpak تلقائيًا في الخلفية، مما يحافظ على الأمان ويُبقي البرامج محدثة بدون تدخل يدوي. ويمكن تعطيل هذه الميزة في حال الحاجة إلى إدارة التحديثات يدويًا، خصوصًا في بيئات إنتاجية أو تعليمية حساسة.
الخلاصة
يمثل Flatpak نقلة نوعية في إدارة التطبيقات في نظام لينكس، حيث يوفّر حلاً موحدًا وآمنًا وقابلًا للنقل بين مختلف التوزيعات. مع استمرار تطور المشروع ودعم مجتمع لينكس له، من المرجح أن يصبح Flatpak من الأدوات الأساسية لكل مستخدم ومطور في بيئة لينكس الحديثة.
المراجع
-
Freedesktop.org documentation
-
Fedora Project Documentation
-
Ubuntu Wiki on Flatpak
-
Arch Wiki: Flatpak

